項目31 型情報をドキュメントで繰り返さない
型情報をドキュメント(自然言語)ではなく、型アノテーションに持たせることで、コードが進化しても型情報が誤る可能性は低い
コメントや変数名での型情報の繰り返しは避ける
良いコメント
振る舞いの補足をコメントとして記載し、型情報に関することは型定義に任せている
code:ts
/** アプリケーションの標準または特定のページ専用の前景色を取得する。 */
function getForegroundColor(page?: string): Color {
// ...
}
パラメータを変更しないとコメントする代わりに、readonly を使ってコードで表現する
code:ts
/** 文字列を数値としてソートする(たとえば"2"<"10")。 */
function sortNumerically(nums: readonly string[]): string[] {
return nums.toSorted((a, b) => Number(a) - Number(b)); // OK
}
単位が型から明らかでない場合は、変数名に単位を含めることを検討する
timeMsはtimeよりも明確
単位をモデルングするためのより型安全な方法は項目64 名前的型付けのためにブランドを使うことを検討する
#TypeScript